package com.itany.corejava.code06_面向对象.bms;

/**
 * @author MissChen
 * @date 2024年02月26日 10:09
 */
public class Bank {
    //存储所有的账户信息
    static Account[] accounts=new Account[100];

    //用于表示当前已开户的账户总数
    //即:当前账户数组中已存放数据的下标,下标+1
    static int count=0;

    /**
     * 开户
     * @param account 需要开户的信息
     * @return
     */
    public static  boolean register(Account account){
        //只要当前开户的账户总数没有达到最大值，则可以开户
        if(count<accounts.length){
            accounts[count++]=account;
            return true;
        }
        return false;
    }

    /**
     * 账户登录
     * @param id  账号编号
     * @param password 账户密码
     * @return
     */
    public static Account login(int id,String password){
        //查询数组中是否有一个Account对象的账户编号和密码与传递进来的保持一致
        for(int i=0;i<count;i++){
            Account account=accounts[i];

            //如果有一致的，则表示登录成功，返回对应的Account
            if(account.getId()==id && password.equals(account.getPassword())){

                //如果遍历的元素存在id与password相等的账户，则表示登录成功
                return account;
            }
        }

        //如果没有找到相同的，则登录失败，提示账户或者密码错误
        return null;
    }

    public static Account findById(int id){
        //遍历所有已开户的账户信息，根据id找到对应的账户
        for(int i=0;i<count;i++){
            if(accounts[i].getId()==id){
                return accounts[i];
            }
        }
        return null;
    }

}
